\subsection{Ejercicio 7}
Como último ejercicio de este trabajo práctico, tuvimos que crear el soporte final para las tareas. Estas usan las interrupciones 88 y 89. \\

En la interrupcion 88 se maneja la llamada a una funcion \code{kprintf} previamente usada. La tareas pasaran los parametros necesarios y la interrupcion llamara a la funcion que es del kernel. Esto se puede ya que se trata de una interrupt gate.\\

En la interrupcion 89 se devovlera una nueva pagina para poder escribir. La funcion obtener\_pagina\_libre se encarga de devolverla. La funcion recibe una entrada del directorio en cr3 y devuelve una pagina virtual para ser usada. Esta es la primer direccion virtual que no tiene un mapeo a una direccion fisica. Luego se realizara el mapeo correspondiente con la funcion \code{mapear\_pagina} que dada una pagina virtual, la mapea a una direccion fisica.\\

La interrupcion del clock tambien es modificada para realizar a cada tiempo un cambio de tareas. Esto es, apuntar el flujo de ejecucion a la TSS correspondiente, y esta indicara desde donde correr la tarea. \\

La interrupcion devuelve en \code{eax} la direccion de la pagina virtual nueva o cero si ocurrio algun error (esto ultimo se refleja en el funcionamiento de las tareas). \\

\subsection{Preguntas}
\begin{itemize}
\item
Pregunta 10: En el 4to item, se pide modificar el directorio de páginas de la tarea. 
¿Qué debe hacerse antes para que no ocurra ningún error? ¿Por qué? 
\end{itemize}

Antes de realizarse el mapeo se debe cambiar al CR3 del Kernel, porque el directorio de páginas del usuario está fuera del mapeo. Y al estar activada la paginación, el acceso a cualquier dirección de memoria se realiza con su dirección virtual, no con la física.
 
